/**
 * @properties={typeid:35,uuid:"9DF20FE6-253E-4D7D-8466-F1F0F1415200",variableType:4}
 */
var fCalc_comision = null;

/**
 * @properties={typeid:35,uuid:"4A0F7583-2765-47C3-80DD-5900C29375BC",variableType:4}
 */
var fTasa_iva_id = null;

/**
 * @properties={typeid:35,uuid:"98402A8F-3EFC-4415-A4D0-B0A9377696F3",variableType:4}
 */
var es_preview = null;

/**
 * @properties={typeid:35,uuid:"4E8A7B77-3AB1-4F2D-828F-BCEE7DF08389",variableType:4}
 */
var found = 0;

/**
 * @properties={typeid:35,uuid:"20997291-8794-4650-9843-C65FA7D0F79B",variableType:4}
 */
var nota = null;

/**
 * @properties={typeid:35,uuid:"A2FB8667-FA1E-4DD6-A923-8BB08EE630DC",variableType:6}
 */
var vporc_iva = 0;

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"22F2027C-77A2-4C61-BE51-4BB4D3AD9EE5"}
 */
function confirmar(event) {
	totalizar()
 
 if (globals.gtotal_detalle <= 0)
 {
	 	globals.gMensaje="El importe a liquidar es erróneo = " + globals.gtotal_detalle
		globals.gMensajes()
		return;
 }
 else
 {
	// setea porcentaje de IVA
	if (tasa_iva_id != null)
	{
 		vporc_iva= liq_cabecera_to_tasa_iva.tasa_iva_porc
 	}
 	else
	{
 		globals.gMensaje = 'Tasa de IVA no definida'
	   	globals.gMensajes();
	   	return
	}
	 // si es letra A pero liquida viajes de exportación el IVA se pone en 0
	if (letra=="A" && globals.gopcion_viajes_exportacion==1)
	{
		vporc_iva=0
	}
	viajes_exportacion=globals.gopcion_viajes_exportacion  // ?  14/02/2011
	//// buscar numeracion de liquidación   codigo=11
	//// para notas usar igual numeracion que para liquidaciones  //  14/02/2011
	var fs_nro_rec = databaseManager.getFoundSet(controller.getServerName(),'numeracion_cl')	
	fs_nro_rec.loadAllRecords()
	fs_nro_rec.find()
	fs_nro_rec.sucursal=sucursal
	fs_nro_rec.letra=letra
	fs_nro_rec.cod_comprobante=11   
	var found=fs_nro_rec.search();
	if (found != 1)
     {	
	   globals.gMensaje = 'Sucursal o Letra o Tipo de comprobante incorrectos al buscar numeracion'
	   globals.gMensajes();
     }
     else
     {	
	  fs_nro_rec.setSelectedIndex(1)
	
	  	var nro_aux= fs_nro_rec.ultimo_numero + 1  
	  	if (nota==1)       //1=credito 2=debito valuelist de pantalla
	  	{
			tipo_doc=41;   // ver esto con Carlos
			nota_aux='Nota de Credito'
	  	}
		else
	  	{
			tipo_doc=42;    // ver esto con Carlos
			nota_aux='Nota de Debito'
	  	}
		globals.duplicacion_liq_cabecera(letra,sucursal,nro_aux);
		if (globals.gfilas!=0)  // si es cero, la liq. no existe
		{ // ya existe , lo rechaza
			globals.gMensaje = 'Ya existe ' + nota_aux + ' de viajes ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_aux,'00000000');
			globals.gMensajes();
			return false;
		}
		  
	  fs_nro_rec.ultimo_numero = fs_nro_rec.ultimo_numero + 1
      
	 ////guardar mas datos de liq_cabecera  // es la tabla del form
     	nro_liquidacion=fs_nro_rec.ultimo_numero
      	subtotal1=globals.gtotal_detalle
      	subtotal0=subtotal1  //  16/04/2012
      	bonificacion=0       //  20/04/2012
      	
		gastos = 0  // no tiene gastos
		// calculo de comision como la liquidacion
		var aux_porc_iva = vporc_iva
		//TODO que el porcentaje de comisión lo tome de variable global cargada en parámetros
		var aux_porc_comision = globals.gPorcenComision //22/11/2012 toma % de comisión de variable global
		if (fCalc_comision != 1)
		{
			var aux_porc_comision = 0
		}
		var aux_red = globals.operacion(subtotal1,"*",aux_porc_comision)  //27/10/2010
		comision = globals.operacion(aux_red,"/",100)   //27/10/2010
		
		aux_red = globals.operacion(subtotal1,"-",comision)  //27/10/2010
		neto= globals.operacion(aux_red,"-",gastos)  //27/10/2010
		
		 
		aux_red = globals.operacion(neto,"*",aux_porc_iva)
		iva1_imp= globals.operacion(aux_red,"/",100)
		iva1_porc=aux_porc_iva
		
		total= globals.operacion(neto,"+",iva1_imp)
		importe_en_letras=globals.nro_a_letra(total)
		
	
     //// grabar la nota en ctacte prov  
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.newRecord()
		
		if (nota==1)
			{
			liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=41 // Nota de crédito   comprobar //14/02/2011
			}
		else
			{
			liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cod_mov=42 // Nota de débito    comprobar //14/02/2011
			}
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.cond_pago_id=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_mov=fecha
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.fecha_vto=fecha
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.itc=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.neto=neto
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_porc=  aux_porc_iva
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva=iva1_imp
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.iva_percep=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.importe=total
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.letra=letra
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.nro_factura=nro_liquidacion
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.provincia_id
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.retecion_ing_brutos=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.retencion_ganancias=0
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.saldo=total
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.sucursal=sucursal
		liq_cabecera_to_proveedor.proveedor_to_ctacte_pr.tasa_iva_id=tasa_iva_id  //27/07/2011 antes movia 1
		
		//  comprobar lo sig.
		//  desmarcar los renglones marcados en liq_ncyd_viajes_4
		for (var i=1;i <= forms.liq_ncyd_viajes_4.controller.getMaxRecordIndex() ;i++)
		{
			forms.liq_ncyd_viajes_4.controller.setSelectedIndex(i);
			if (forms.liq_ncyd_viajes_4.marcado_liq_detalle==1)
				forms.liq_ncyd_viajes_4.marcado_liq_detalle=0;
		}
		
			
	//// salvar todo
	var estado=databaseManager.saveData()
	if (estado==true)
	{
	databaseManager.refreshRecordFromDatabase(foundset, 0) // deja el indice correctamente
	databaseManager.refreshRecordFromDatabase(foundset.liq_cabecera_to_liq_detalle,-1)
	databaseManager.refreshRecordFromDatabase(foundset.liq_cabecera_to_proveedor.proveedor_to_ctacte_pr,0)  // por el cod de movim no se puede usar relacion directa
	//globals.gMensaje ='Liquidación ' + '\nSucursal ' + sucursal + '\n' + 'Letra ' + letra    + '\nNumero ' + nro_comprobante +  '\nGenerado correctamente' + '\nImprime:'
	globals.gMensaje ='Nota ' + letra + '-' + utils.numberFormat(sucursal,'0000') + '-' + utils.numberFormat(nro_liquidacion,'00000000') +  ' Generada correctamente' + ' Imprime:'
	//plugins.dialogs.showInfoDialog('Generador de Facturas y Notas',  globals.gMensaje,  "OK")
	//var resp = plugins.dialogs.showQuestionDialog( 'Impresion',  '¿Desea imprimir?' ,  'Si', 'No')
	var resp=globals.DIALOGS.showQuestionDialog('Nota',  globals.gMensaje,  "Si", "No" )
	if (resp == 'Si')
	{
		es_preview = 1 
		forms.liq_cabecera_imp.controller.showPrintPreview(true)	
	}
	else 
	{ 
		iniciar()
	} 
	}
	else
	{
	globals.gMensaje ='Nota C y D de Viajes No fue generada '
	globals.DIALOGS.showInfoDialog('Generador de Notas de viajes',  globals.gMensaje,  "OK")
	cancelar()
	}
	}
 }
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"6D1998E3-44D6-4A95-B264-EE3E7EFC7383"}
 */
function cancelar(event) 
{
	databaseManager.rollbackEditedRecords()
	//  databaseManager.setAutoSave(true)  //16/02/2011
	iniciar();
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"5B72E099-8261-46C0-8881-88EC07BB5FAB"}
 */
function borra_detalle(event) 
{  
var found = liq_cabecera_to_liq_detalle_copy.getSize()
	if (found==0)   
	{
	    globals.gtotal_detalle=0.00
	}
	else
	{
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea dar de baja? ',  'Si', 'No')
	if (resp == 'Si')
	{
		liq_cabecera_to_liq_detalle_copy.deleteRecord();
		totalizar();
	}
	}
}

/**
 * Callback method for when form is shown.
 *
 * @param {Boolean} firstShow form is shown first time after load
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"21E09322-529B-4E9B-91BD-850DE1F56B1F"}
 */
function iniciar(firstShow, event) 
{
	globals.autosaveoff();
	
	controller.newRecord(false);
	fecha = new Date();  
	globals.gtotal_detalle=0.00;
	proveedor_id=0
	globals.gopcion_viajes_exportacion=0
	es_preview = 0; //26/07/2010
	tasa_iva_id = 1 // default 21% 27/07/2011
	fCalc_comision = 0 // default no calcula comision 26/08/2011
}

/**
 * Handle hide window.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"0BD44E5F-A109-471D-87B7-64364FCAB110"}
 */
function salir_liq(event) 
{
	if (es_preview== 0) 
	{ 
	var resp = globals.DIALOGS.showQuestionDialog( 'Confirma',  '¿Seguro que desea salir?' ,  'Si', 'No')
	if (resp == 'Si')
	{
		databaseManager.rollbackEditedRecords()
		databaseManager.setAutoSave(true)
		return true   //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
	}
	else
	{
		return false //11/01/2012 - corrección onHide con respuesta "No" - evita cabeceras vacías
	}
	} 
	return true
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"F3107E85-4904-4F90-88BC-652CA59E3DE9"}
 */
function elige_fletero(oldValue, newValue, event) 
{
	globals.gtotal_comprob=0.00
	// salvar_fletero: porque perdia en codigo de fletero en el newRecord
	var salvar_fletero=proveedor_id
	// rollback: porque al cambiar de cliente dejaba los movs. del anterior
	databaseManager.rollbackEditedRecords()
	// newRecord: porque al traia datos del untilmo recibo de ese cliente en vez de crear uno
	controller.newRecord(false);
	proveedor_id=salvar_fletero
	globals.marca_primer_find = 0
	// letra y sucursal podrían tener que ser calculados dependiendo del tipo_iva del
	// proveedor
	switch( liq_cabecera_to_proveedor.tipo_iva_id )
	{
	case 1: 
		letra="A"
		vporc_iva=globals.gporc_iva_fletes
		break;
	case 6: 
		letra="B"
		vporc_iva=0
		break;
	case 8: 
		letra="A"
		vporc_iva=globals.gporc_iva_fletes
		break;
	default:
		letra="X"
		vporc_iva=0
	}
	sucursal=globals.gSucursal
	fecha=new Date;
	return true
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"EA97CB04-B4F6-4A0A-A520-9B2F100563C7"}
 */
function agrega_detalle(event) 
{
	if (proveedor_id==0 || proveedor_id==null)
	{
		globals.gMensaje = 'Debe ingresar Proveedor o Fletero antes de agregar renglon';
		globals.gMensajes();
		return;
	}
	if (nota==null)
	{
		globals.gMensaje = 'Debe tipo de nota';
		globals.gMensajes();
		return;
	}
	application.showFormInDialog(forms.liq_ncyd_viajes_3,-1,-1,850,700,'Elegir Liquidacion',false,false,'ver_liquidacion',true)
	totalizar();
}

/**
 *
 * @properties={typeid:24,uuid:"641ED526-1C62-49B7-B5CF-9D22769381C0"}
 */
function totalizar() 
{    
	globals.gtotal_detalle=0.00
	for ( var i = 1 ; i <= forms.liq_ncyd_viajes_2.controller.getMaxRecordIndex(); i++ )
	{
		forms.liq_ncyd_viajes_2.controller.setSelectedIndex(i)
		globals.gtotal_detalle+= forms.liq_ncyd_viajes_2.importe;
	}  
	//  ver lo sig.  16/02/2010
	subtotal1=globals.gtotal_detalle
	subtotal0=subtotal1; // 16/04/2012
	bonificacion=0       // 20/04/2012
	gastos = 0  // no tiene gastos
	//TODO calculo de comision con % en variable global cargada con params
	var aux_porc_iva = vporc_iva
	var aux_porc_comision = globals.gPorcenComision //22/11/2012 toma % de comisión de variable global
	if (fCalc_comision != 1)
	{
		var aux_porc_comision = 0
	}
	var aux_red = globals.operacion(subtotal1,"*",aux_porc_comision) 
	comision = globals.operacion(aux_red,"/",100)
		
	aux_red = globals.operacion(subtotal1,"-",comision) 
	neto= globals.operacion(aux_red,"-",gastos)  
		
	aux_red = globals.operacion(neto,"*",aux_porc_iva)
	iva1_imp= globals.operacion(aux_red,"/",100)
	
	iva1_porc=vporc_iva
	total= globals.operacion(neto,"+",iva1_imp)
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"798AC8B1-BF47-49D1-BDD8-7DB91460604B"}
 */
function onAction_calc_comis(event) {
	totalizar()
}
